home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 6 / FM Towns Free Software Collection 6.iso / t_os / algernon / mcedit.src < prev    next >
Text File  |  1993-07-08  |  16KB  |  396 lines

  1. 100 '--------------------  VIL組み込み開始 --------------------
  2. 110 CLEAR ,,512,1024*700,0,0                      'メモリ領域設定
  3. 120 SCREEN 0:CLS
  4. 130 VIL_W0=0:VIL_W1=0:VIL_W2=0:VIL_W3=0:VIL_W4=0  '汎用ワーク変数
  5. 140 VIL_W5=0:VIL_W6=0:VIL_W7=0:VIL_W8=0:VIL_W9=0
  6. 150 VIL_W0$="":VIL_W1$="":VIL_W2$="":VIL_W3$=""
  7. 160 VIL_I=0:VIL_J=0:VIL_K=0                       'ループ変数
  8. 170 VIL_A$=""                                     '文字列汎用
  9. 180 VIL_F$=""                                     'ファイル名汎用
  10. 190 VIL_C=15:VIL_CB=0                             '描画色・背景色(0..15)
  11. 200 VIL_X=0:VIL_Y=0:VIL_W=0:VIL_Z=0               '左上隅・右下隅座標
  12. 210 VIL_XL=0:VIL_YL=0:VIL_XN=0:VIL_YN=0           'X・Y軸方向長さ・個数
  13. 220 VIL_P=0                                       'パレット番号
  14. 225 VIL_KN=0                                      '入力番号
  15. 226 VIL_K$="":VIL_KY=0                            '入力キーとアスキーコード
  16. 227 VIL_MX=0:VIL_MY=0:VIL_MW=0:VIL_MZ=0           'マウス位置
  17. 230 '
  18. 240 VIL_E=0                                       'エラー番号
  19. 250 VIL_DIR$=""                                   'VILディレクトリ
  20. 260 VIL_FMTDIR$=""                                'FMTITLEディレクトリ
  21. 270 VIL_VER=100                                   'VIL VER1.00
  22. 280 '
  23. 290 *VIL_CNF                              '設定ファイル"CONFIG.VIL"読込
  24. 300 PRINT"Searching "+CHR$(34)+"CONFIG.VIL"+CHR$(34)
  25. 310 PRINT"Searching current directory"
  26. 320 GOSUB *VIL_ERR_ON:VIL_E=0
  27. 330 OPEN "I",#1,"CONFIG.VIL"              'カレントディレクトリを探す
  28. 340 IF VIL_E=63 THEN
  29. 350   PRINT"Searching root directory"
  30. 360   VIL_E=0
  31. 370   OPEN "I",#1,"\CONFIG.VIL"           'ルートディレクトリを探す
  32. 380   IF VIL_E=63 THEN                    '見つからなければ設定中止
  33. 390     PRINT"WARNING:"+CHR$(34)+"CONFIG.VIL"+CHR$(34)+" not found"
  34. 400     GOTO *VIL_L_BGN
  35. 410   ENDIF
  36. 420 ENDIF
  37. 430 PRINT"Reading "+CHR$(34)+"CONFIG.VIL"+CHR$(34)
  38. 440 WHILE EOF(1)=0
  39. 450   LINE INPUT #1,VIL_W0$
  40. 460   IF LEFT$(VIL_W0$,1)<>"'" THEN              'コメント行スキップ
  41. 470     IF INSTR(VIL_W0$,"VILDIR") THEN          'VILディレクトリ設定
  42. 480       VIL_DIR$=MID$(VIL_W0$,INSTR(VIL_W0$,"=")+1)
  43. 490     ELSE IF INSTR(VIL_W0$,"FMTITLEDIR") THEN 'FMTITLEディレクトリ設定
  44. 500       VIL_FMTDIR$=MID$(VIL_W0$,INSTR(VIL_W0$,"=")+1)
  45. 510     ENDIF
  46. 520   ENDIF
  47. 530 WEND
  48. 540 CLOSE #1
  49. 550 '
  50. 560 *VIL_L_BGN                                ' VIL リンク開始
  51. 570 ON ERROR GOTO 0
  52. 580 *VIL_L_BAS:                                                                    CHAIN MERGE VIL_DIR$+"VIL_BAS.BAS",*VIL_L_VWM,ALL,DELETE *VIL_L_BAS
  53. 590 *VIL_L_VWM:                                                                    CHAIN MERGE VIL_DIR$+"VIL_VWM.BAS",*VIL_L_UTY,ALL,DELETE *VIL_L_VWM
  54. 600 *VIL_L_UTY:                                                                    CHAIN MERGE VIL_DIR$+"VIL_UTY.BAS",*VIL_L_END,ALL,DELETE *VIL_L_UTY
  55. 610 *VIL_L_END                                ' VIL リンク終了
  56. 620 '
  57. 630 GOSUB *VIL_ERR_ON
  58. 640 GOSUB *VIL_DEFFN:GOTO *VIL_INITEND
  59. 650 '
  60. 660 *VIL_ERR_ON:ON ERROR GOTO *VIL_ERR:RETURN
  61. 670 *VIL_ERR:VIL_E=ERR:RESUME NEXT
  62. 680 '
  63. 690 *VIL_DEFFN
  64. 700 '  S$:文字列に変換 SS$:左にスペースを詰める S0$:左に0を詰める
  65. 710 '  P :正の整数     I  :整数                 R  :実数
  66. 720 DEF FNVIL_P2S$(X)   =MID$(STR$(X),2)
  67. 730 DEF FNVIL_P2SS$(X,Y)=RIGHT$("          "+STR$(X),Y)
  68. 740 DEF FNVIL_P2S0$(X,Y)=RIGHT$("0000000000"+MID$(STR$(X),2),Y)
  69. 750 DEF FNVIL_I2S$(X)   =MID$(STR$(X),1-(X>=0))
  70. 760 DEF FNVIL_I2SS$(X,Y)=RIGHT$("         "+STR$(X),Y)
  71. 770 '符号1桁(+-) + 00… + 数値
  72. 780 DEF FNVIL_I2S0$(X,Y)  =MID$("+-",1-(X<0),1)                                                        +RIGHT$("0000000000"+MID$(STR$(ABS(X)),2),Y-1)
  73. 790 DEF FNVIL_R2S$(X)     =MID$(STR$(X),1-(X>=0))
  74. 800 DEF FNVIL_R2SS$(X,Y,Z)=RIGHT$("         "+STR$(FIX(X)),Y)+"."                                      +MID$("0000000000"+STR$(X)+"0000000000"                                           ,INSTR("0000000000"+STR$(X),".")+1,Z)
  75. 810 DEF FNVIL_R2S0$(X,Y,Z)=MID$("+-",1-(X<0),1)+RIGHT$("0000000000"               +MID$(STR$(FIX(ABS(X))),2),Y-1)+MID$("0000000000"+STR$(X)+"0000000000"                                           ,INSTR("0000000000"+STR$(X),".")+1,Z)
  76. 820 RETURN
  77. 830 '
  78. 840 *VIL_INITEND
  79. 850 '--------------------  VIL組み込み終了 --------------------
  80. 10000 '<<<<<<<<<<<<<<<<<<<< MOUSE CURSOR EDITOR >>>>>>>>>>>>>>>>>>>>
  81. 10040 PLAY OFF
  82. 10045 'ON ERROR GOTO 0'***
  83. 10220 '<<<<<<<<<<<<<<<<<<<<  VIL INITIALIZE  >>>>>>>>>>>>>>>>>>>>
  84. 10230 '
  85. 10240 GOSUB *VIL_BEEP_INITM
  86. 10250 '
  87. 10260 VIL_W0=1024*500\2             '画面退避(最大ウィンドウ総面積)
  88. 10270 VIL_W1=20                     '最大ウィンドウ番号
  89. 10280 GOSUB *VIL_WIN_INITM
  90. 10290 '
  91. 10300 VIL_W0=110                    '最大メニュー番号
  92. 10310 VIL_W1=256                     '最大ボックス数
  93. 10320 GOSUB *VIL_MSEL_INITM
  94. 10330 GOSUB *VIL_INP_INITM
  95. 10340 '
  96. 10350 VIL_W0= 99                    '最大ウィンドウ通し番号
  97. 10360 VIL_W1=128                    'ウィンドウ枠色初期設定  (G)
  98. 10370 VIL_W2=128                    '                        (R)
  99. 10380 VIL_W3=128                    '                        (B)
  100. 10390 VIL_W4=  8                    'ウィンドウ背景色用パレット番号
  101. 10400 VIL_W5=  0                    'ウィンドウ背景色初期設定(G)
  102. 10410 VIL_W6=  0                    '                        (R)
  103. 10420 VIL_W7=  0                    '                        (B)
  104. 10430 GOSUB *VIL_VWM_INITM
  105. 10440 GOSUB *VIL_SEL_INITM
  106. 10450 '
  107. 10460 VIL_W0=160:VIL_W1=80
  108. 10470 GOSUB *VIL_SYSCNF_INITM
  109. 10480 '
  110. 10490 VIL_W0=160+32:VIL_W1=80+32   '色設定ウィンドウ左上隅座標
  111. 10492 VIL_W2=160+64:VIL_W3=80+64   'パレット設定ウィンドウ左上隅座標
  112. 10494 VIL_W4=-1                     '表示輝度(高輝度)
  113. 10496 VIL_W5=128                    'ウィンドウ枠色初期設定  (G)
  114. 10498 VIL_W6=128                    'ウィンドウ枠色初期設定  (R)
  115. 10500 VIL_W7=128                    'ウィンドウ枠色初期設定  (B)
  116. 10502 GOSUB *VIL_COLCNF_INITM
  117. 10504 '
  118. 10506 VIL_W0=160+32:VIL_W1=80+32   'BGM設定ウィンドウ左上隅座標
  119. 10508 GOSUB *VIL_BGM_INITM
  120. 10510 '
  121. 10512 VIL_W0=160+64:VIL_W1=80+64   'BGM-FMウィンドウ左上隅座標
  122. 10514 VIL_W2=160+96:VIL_W3=80+16   '曲選択ウィンドウ左上隅座標
  123. 10516 VIL_W4=63                    'MMLデータ数
  124. 10518 VIL_W5=16                    '曲データ数
  125. 10520 GOSUB *VIL_BGMFM_INITM
  126. 10522 '
  127. 10524 VIL_W0=160+64:VIL_W1=80+64   'BGM-CDウィンドウ左上隅座標
  128. 10526 GOSUB *VIL_BGMCD_INITM
  129. 10528 '
  130. 10530 '--------------------------------------------------------------------
  131. 10532 *VIL_MCEDIT
  132. 10534 ' マウスカーソル・エディタ
  133. 10540 '
  134. 10550 VIL_FNAM$=""
  135. 10551 VIL_WX=80:VIL_WY=80
  136. 10552 CLS
  137. 10553 '
  138. 10560 'FNAM$        :ファイル名
  139. 10570 '
  140. 10580 DIM VIL_PAT%(15,15)  '0:BLACK,1:WHITE,2:BACK
  141. 10590 PALETTE 7,[255,255,255]
  142. 10600 PALETTE 6,[160,160,160]
  143. 10610 VIL_MCAND$="":VIL_MCDOT$=""
  144. 10620 VIL_MCX=-1:VIL_MCY=-1
  145. 10630 'SETUP SCREEN
  146. 10640 VIL_WW=VIL_WX+343:VIL_WZ=VIL_WY+290
  147. 10650 VIL_VWT$="ALGERNON":VIL_VWAT=4:VIL_VWN=0
  148. 10660 GOSUB *VIL_VWOPEN
  149. 10670 SYMBOL(8,2),"MOUSE CURSOR EDITOR",1,1,4,,,3
  150. 10680 LINE(8,24)-(264,280),PSET,%6,B
  151. 10690 LINE(272,24)-(289,41),PSET,%6,B
  152. 10700 LINE(300,24)-(339,43),PSET,7,BF
  153. 10710 GOSUB 11480
  154. 10720 RESTORE 12870
  155. 10730 FOR VIL_I=1 TO 9
  156. 10740   READ VIL_W0$
  157. 10750   SYMBOL(276,VIL_I*22+32),FNVIL_P2S$(VIL_I)+" "+VIL_W0$,1,1,7
  158. 10760   LINE(274,VIL_I*22+30)-(333,VIL_I*22+47),PSET,%6,B
  159. 10770 NEXT
  160. 10780 GOSUB 12820
  161. 10790 VIL_BCE=0
  162. 10800 'MAIN MENU
  163. 10810 LINE(268,46)-(339,251),PSET,7,B
  164. 10820 VIL_X=272:VIL_Y=50:VIL_W=335:VIL_Z=71
  165. 10830 VIL_YL=22:VIL_XN=1:VIL_YN=9:VIL_C=15:VIL_MN=80
  166. 10840 GOSUB *VIL_MSEL
  167. 10850 LINE(268,46)-(339,251),PSET,%8,B
  168. 10860 GOSUB 12760
  169. 10870 IF VIL_KN>0 THEN
  170. 10880   ON VIL_KN GOSUB 10920,10920,10920,11130,11350,11640,11730,11730,*VIL_SYSCNF
  171. 10890 ENDIF
  172. 10900 GOTO 10810
  173. 10910 'EDIT
  174. 10920 VIL_W5=VIL_KN
  175. 10930 VIL_X=8:VIL_Y=24:VIL_W=24:VIL_Z=40
  176. 10940 VIL_XL=16:VIL_YL=16:VIL_XN=9:VIL_YN=1:VIL_BCE=0
  177. 10950 GOSUB *VIL_BCMAKE
  178. 10960 VIL_XN=16:VIL_YN=16:VIL_C=12:VIL_MN=81
  179. 10970 GOSUB *VIL_MSELIN
  180. 10980 IF VIL_KN>0 THEN
  181. 10990   VIL_X=(VIL_KN-1) MOD 16:VIL_Y=(VIL_KN-1)\16 
  182. 11000   VIL_C=-(VIL_W5=2)*15-(VIL_W5=3)*9
  183. 11010   LINE(VIL_X*16+ 9,VIL_Y*16+25)                                                   -(VIL_X*16+23,VIL_Y*16+39),PSET,%VIL_C,BF
  184. 11020   PSET(VIL_X+273,VIL_Y+25),%VIL_C
  185. 11030   PSET(VIL_X+302,VIL_Y+26),%(-(VIL_C<>0)*15)
  186. 11040   VIL_PAT%(VIL_X,VIL_Y)=VIL_W5-1
  187. 11050 ELSE IF VIL_KN=0 THEN
  188. 11060   VIL_C=12:GOSUB *VIL_BC
  189. 11070   RETURN
  190. 11080 ELSE
  191. 11090   GOSUB 12760
  192. 11100 ENDIF
  193. 11110 GOTO 10960
  194. 11120 'POINT
  195. 11130 VIL_X=8:VIL_Y=24:VIL_W=24:VIL_Z=40
  196. 11140 VIL_XL=16:VIL_YL=16:VIL_XN=9:VIL_YN=1:VIL_BCE=0
  197. 11150 GOSUB *VIL_BCMAKE
  198. 11160 VIL_XN=16:VIL_YN=16:VIL_C=12:VIL_MN=81
  199. 11170 GOSUB *VIL_MSELIN
  200. 11180 IF VIL_KN>0 THEN
  201. 11190   IF VIL_MCX>=0 THEN
  202. 11200     VIL_C=-(VIL_PAT%(VIL_MCX,VIL_MCY)=1)*15                                           -(VIL_PAT%(VIL_MCX,VIL_MCY)=2)*9
  203. 11210     LINE(VIL_MCX*16+ 9,VIL_MCY*16+25)                                              -(VIL_MCX*16+23,VIL_MCY*16+39),PSET,%VIL_C,BF
  204. 11220   ENDIF
  205. 11230   VIL_MCX=(VIL_KN-1) MOD 16:VIL_MCY=(VIL_KN-1)\16 
  206. 11240   LINE(VIL_MCX*16+12,VIL_MCY*16+28)                                              -(VIL_MCX*16+20,VIL_MCY*16+36),PSET,2,BF
  207. 11250   VIL_C=12:GOSUB *VIL_BC
  208. 11260   RETURN
  209. 11270 ELSE IF VIL_KN=0 THEN
  210. 11280   VIL_C=12:GOSUB *VIL_BC
  211. 11290   RETURN
  212. 11300 ELSE
  213. 11310   GOSUB 12760
  214. 11320 ENDIF
  215. 11330 GOTO 11130
  216. 11340 'CLEAR
  217. 11350 VIL_WX=VIL_WX+48:VIL_WY=VIL_WY+160:VIL_WW=VIL_WX+175:VIL_WZ=VIL_WY+55
  218. 11360 VIL_VWT$="CLEAR":VIL_VWAT=0
  219. 11370 GOSUB *VIL_VWOPEN
  220. 11380 SYMBOL(8,8),"データをクリアします",1,1,7
  221. 11390 VIL_X=44:VIL_Y=28
  222. 11400 GOSUB *VIL_SEL_DO
  223. 11410 IF VIL_KN<1 THEN
  224. 11420   GOSUB 12760
  225. 11430   GOTO 11390
  226. 11440 ENDIF
  227. 11450 GOSUB *VIL_VWCLOSE
  228. 11460 IF VIL_KN=2 THEN RETURN
  229. 11470 '
  230. 11480 FOR VIL_Y=0 TO 15
  231. 11490   FOR VIL_X=0 TO 15
  232. 11500     VIL_PAT%(VIL_X,VIL_Y)=2
  233. 11510   NEXT
  234. 11520 NEXT
  235. 11530 LINE(9,25)-(263,279),PSET,1,BF
  236. 11540 FOR VIL_X=24 TO 248 STEP 16
  237. 11550   LINE(VIL_X,24)-(VIL_X,280),PSET,%6
  238. 11560 NEXT
  239. 11570 FOR VIL_Y=40 TO 264 STEP 16
  240. 11580   LINE(8,VIL_Y)-(264,VIL_Y),PSET,%6
  241. 11590 NEXT
  242. 11600 LINE(273,25)-(288,40),PSET,1,BF
  243. 11610 LINE(300,24)-(339,43),PSET,7,BF
  244. 11620 RETURN
  245. 11630 'SET
  246. 11640 GOSUB 12610
  247. 11650 VIL_W0$="":VIL_W1$=""
  248. 11660 FOR VIL_I=1 TO 63 STEP 2
  249. 11670   VIL_W0$=VIL_W0$+CHR$(VAL("&H"+MID$(VIL_MCAND$,VIL_I,2)))
  250. 11680   VIL_W1$=VIL_W1$+CHR$(VAL("&H"+MID$(VIL_MCDOT$,VIL_I,2)))
  251. 11690 NEXT
  252. 11700 MOUSE 2,VIL_W0$,VIL_W1$,-VIL_MCX*(VIL_MCX>=0),-VIL_MCY*(VIL_MCX>=0)
  253. 11710 RETURN
  254. 11720 'LOAD & SAVE
  255. 11730 VIL_W5=(VIL_KN=8)    '0:LOAD  / -1:SAVE
  256. 11740 VIL_WX=VIL_WX+48:VIL_WY=VIL_WY+160:VIL_WW=VIL_WX+351:VIL_WZ=VIL_WY+31
  257. 11750 VIL_VWT$=MID$("LOADSAVE",1-VIL_W5*4,4)+" NAME":VIL_VWAT=0
  258. 11760 GOSUB *VIL_VWOPEN
  259. 11770 SYMBOL(8,8),KMID$("ロードセーブ",1-VIL_W5*3,3)+"名:",1,1,7
  260. 11780 VIL_A$=VIL_FNAM$
  261. 11790 VIL_X=80:VIL_Y=8:VIL_C=15:VIL_CB=8:VIL_L=32
  262. 11800 GOSUB *VIL_INPSTR
  263. 11810 IF VIL_KN=-2 OR (VIL_KN=-1 AND VIL_MW=-1) THEN 
  264. 11820   VIL_W0$=VIL_A$
  265. 11830   GOSUB 12760
  266. 11840   IF VIL_VWMR=8 THEN RETURN
  267. 11850   VIL_A$=VIL_W0$
  268. 11860   GOTO 11790
  269. 11870 ELSE IF VIL_KN=0 THEN
  270. 11880   GOSUB *VIL_VWCLOSE
  271. 11890 ELSE 
  272. 11900   VIL_FNAM$=VIL_A$
  273. 11910   VIL_WX=VIL_WX+48:VIL_WY=VIL_WY+48
  274. 11920   VIL_WW=VIL_WX+175:VIL_WZ=VIL_WY+55
  275. 11930   VIL_VWT$=MID$("LOADSAVE",1-VIL_W5*4,4)+" SURE":VIL_VWAT=0
  276. 11940   GOSUB *VIL_VWOPEN
  277. 11950   SYMBOL(8,8),"データを"+KMID$("ロードセーブ",1-VIL_W5*3,3)+"します",                     1,1,7
  278. 11960   VIL_X=44:VIL_Y=28
  279. 11970   GOSUB *VIL_SEL_DO
  280. 11980   IF VIL_KN<1 THEN
  281. 11990     GOSUB 12760
  282. 12000     GOTO 11960
  283. 12010   ENDIF
  284. 12020   GOSUB *VIL_VWCLOSE:GOSUB *VIL_VWCLOSE
  285. 12030   IF VIL_KN=2 THEN RETURN
  286. 12040   IF VIL_W5=0 THEN    'LOAD
  287. 12050     VIL_E=0
  288. 12060     OPEN "I",#1,VIL_FNAM$
  289. 12070     IF VIL_E=63 THEN
  290. 12080       STOP
  291. 12090     ENDIF
  292. 12100     LINE INPUT #1,VIL_W0$:VIL_MCX=VAL(MID$(VIL_W0$,15))
  293. 12110     LINE INPUT #1,VIL_W0$:VIL_MCY=VAL(MID$(VIL_W0$,15))
  294. 12120     LINE INPUT #1,VIL_W0$':VIL_MCAND$=MID$(VIL_W0$,19,64)
  295. 12121     VIL_W0=0:VIL_MCAND$=""
  296. 12122     FOR VIL_I=0 TO 31
  297. 12123       VIL_W0=INSTR(VIL_W0+1,VIL_W0$,"&H")+2
  298. 12124       VIL_MCAND$=VIL_MCAND$+MID$(VIL_W0$,VIL_W0,2)
  299. 12125     NEXT
  300. 12128 '
  301. 12130     LINE INPUT #1,VIL_W0$':VIL_MCDOT$=MID$(VIL_W0$,19,64)
  302. 12131     VIL_W0=0:VIL_MCDOT$=""
  303. 12132     FOR VIL_I=0 TO 31
  304. 12133       VIL_W0=INSTR(VIL_W0+1,VIL_W0$,"&H")+2
  305. 12134       VIL_MCDOT$=VIL_MCDOT$+MID$(VIL_W0$,VIL_W0,2)
  306. 12135     NEXT
  307. 12138 '
  308. 12140     FOR VIL_Y=0 TO 15
  309. 12150       VIL_W0=32768
  310. 12160         VIL_W1=VAL("&H"+MID$(VIL_MCAND$,VIL_Y*4+1,4))
  311. 12170         VIL_W2=VAL("&H"+MID$(VIL_MCDOT$,VIL_Y*4+1,4))
  312. 12180       FOR VIL_X=0 TO 15
  313. 12190         VIL_PAT%(VIL_X,VIL_Y)=-((VIL_W1 AND VIL_W0)>0)*2                                                  -((VIL_W2 AND VIL_W0)>0)
  314. 12200         VIL_C=-(VIL_PAT%(VIL_X,VIL_Y)=1)*15                                               -(VIL_PAT%(VIL_X,VIL_Y)=2)*9
  315. 12210         LINE(VIL_X*16+ 9,VIL_Y*16+25)                                                  -(VIL_X*16+23,VIL_Y*16+39),PSET,%VIL_C,BF
  316. 12220         PSET(VIL_X+273,VIL_Y+25),%VIL_C
  317. 12230         PSET(VIL_X+302,VIL_Y+26),%(-(VIL_C<>0)*15)
  318. 12240         VIL_W0=VIL_W0\2
  319. 12250       NEXT
  320. 12260     NEXT
  321. 12270     IF VIL_MCX>=0 THEN 
  322. 12280       LINE(VIL_MCX*16+12,VIL_MCY*16+28)                                              -(VIL_MCX*16+20,VIL_MCY*16+36),PSET,2,BF
  323. 12290     ENDIF
  324. 12300     CLOSE #1
  325. 12310   ELSE                'SAVE
  326. 12320     GOSUB 12610
  327. 12330     VIL_E=0
  328. 12340     OPEN "O",#1,VIL_FNAM$
  329. 12350     IF VIL_E=64 THEN
  330. 12360       VIL_WX=VIL_WX+48:VIL_WY=VIL_WY+160
  331. 12370       VIL_WW=VIL_WX+287:VIL_WZ=VIL_WY+55
  332. 12380       VIL_VWT$="SURE":VIL_VWAT=0
  333. 12390       GOSUB *VIL_VWOPEN
  334. 12400       SYMBOL(8,8),"指定のファイルは既に存在しています",1,1,7
  335. 12410       VIL_X=100:VIL_Y=28
  336. 12420       GOSUB *VIL_SEL_DO
  337. 12430       IF VIL_KN<1 THEN
  338. 12440         GOSUB 12760
  339. 12450         GOTO 12410
  340. 12460       ENDIF
  341. 12470       GOSUB *VIL_VWCLOSE
  342. 12480       IF VIL_KN=2 THEN GOSUB *VIL_VWCLOSE:RETURN
  343. 12490       KILL VIL_FNAM$:GOTO 12330
  344. 12500     ENDIF
  345. 12510     PRINT #1,"60000 VIL_MCX="+FNVIL_P2S$(VIL_MCX)
  346. 12520     PRINT #1,"60010 VIL_MCY="+FNVIL_P2S$(VIL_MCY)
  347. 12521 '
  348. 12522     VIL_W0$="60020 VIL_MCA$=CHR$(&H"+MID$(VIL_MCAND$,1,2)
  349. 12523     FOR VIL_I=0 TO 30
  350. 12524       VIL_W0$=VIL_W0$+",&H"+MID$(VIL_MCAND$,VIL_I*2+3,2)
  351. 12525     NEXT
  352. 12530     PRINT #1,VIL_W0$+")"
  353. 12541 '
  354. 12542     VIL_W0$="60030 VIL_MCD$=CHR$(&H"+MID$(VIL_MCDOT$,1,2)
  355. 12543     FOR VIL_I=0 TO 30
  356. 12544       VIL_W0$=VIL_W0$+",&H"+MID$(VIL_MCDOT$,VIL_I*2+3,2)
  357. 12545     NEXT
  358. 12546     PRINT #1,VIL_W0$+")"
  359. 12550     CLOSE #1
  360. 12560   ENDIF
  361. 12570 ENDIF
  362. 12580 RETURN
  363. 12590 '
  364. 12600 'MAKE STRING
  365. 12610 VIL_MCAND$="":VIL_MCDOT$=""
  366. 12620 FOR VIL_Y=0 TO 15
  367. 12631   FOR VIL_I=0 TO 1
  368. 12635   VIL_W0=0:VIL_W1=0
  369. 12640     FOR VIL_X=0 TO 7
  370. 12650      VIL_W0=(VIL_W0-(VIL_PAT%(VIL_I*8+VIL_X,VIL_Y)=2))*2
  371. 12660      VIL_W1=(VIL_W1-(VIL_PAT%(VIL_I*8+VIL_X,VIL_Y)=1))*2
  372. 12670 'PRINT -(VIL_PAT%(VIL_I*8+VIL_X,VIL_Y)=2);'    PRINT VIL_W0;VIL_W1
  373. 12680     NEXT
  374. 12682 'PRINT HEX$(VIL_W0\2)'PRINT HEX$(VIL_W0);
  375. 12690     VIL_MCAND$=VIL_MCAND$+RIGHT$("00"+HEX$(VIL_W0\2),2)
  376. 12700     VIL_MCDOT$=VIL_MCDOT$+RIGHT$("00"+HEX$(VIL_W1\2),2)
  377. 12710 '    PRINT VIL_MCAND$;"|";VIL_MCDOT$:A$=INPUT$(1)
  378. 12715   NEXT
  379. 12720 NEXT
  380. 12730 RETURN
  381. 12740 '
  382. 12750 'CHECK VWM AND VST
  383. 12760 GOSUB *VIL_VWMCHECK
  384. 12770 IF VIL_VWMR=4 AND VIL_WT$="ALGERNON" THEN GOSUB 12820
  385. 12780 'GOSUB *VIL_STCHECK
  386. 12790 RETURN
  387. 12800 '
  388. 12810 'MAKE BOX FOR PATTERN EDIT
  389. 12820 VIL_X=8:VIL_Y=24:VIL_W=24:VIL_Z=40
  390. 12830 VIL_XL=16:VIL_YL=16:VIL_XN=16:VIL_YN=16
  391. 12840 GOSUB *VIL_BCMAKE
  392. 12850 RETURN
  393. 12860 '
  394. 12870 DATA "BLACK","WHITE","BACK","POINT","CLEAR","SET","LOAD","SAVE","SYS"
  395. 12880 'SCALE--------2---------3---------4---------5---------6---------7-----*--*8
  396.